'use strict';
const { formatDate } = require('./formatDate');
/**
 * 格式化日期
 */

function _formatBlogTime(obj) {
  obj.createdAtFormat = formatDate(obj.createdAt);
  obj.updatedAtFormat = formatDate(obj.updatedAt);
  return obj;
}
// 格式化内容
function _formatBlogContent(obj) {
  // 不更改原始数据
  obj.formatContent = obj.content;
  // @nickName - userName
  const REG_AT_WHO = /@(.+?)\s-\s(\w+?)\b/g;
  // <a href="/profile/userName">@nickName</a>
  obj.formatContent = obj.formatContent.replace(REG_AT_WHO, (matchStr, nickName, userName) => {
    return `<a href="/profile/${userName}">@${nickName}</a>`;
  })
  return obj;
}

function formatBlog(list) {
  // 如果没有传博客 将空对象赋值给博客
  if (list == null) {
    list = {};
    return;
  }
  // 如果传入的博客是一个数组
  if (list instanceof Array) {
    return list.map(_formatBlogTime).map(_formatBlogContent);
  }
  let result = list
  result = _formatBlogTime(result); // 格式化日期
  result = _formatBlogContent(result); // 格式化内容
  return result
}
module.exports = {
  formatBlog,
};
